不能将int类型的值分配到int类型的实体,是啥意思?例如int *a[10];a[0]=j-i;(i、j均为指针)。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不能将int类型的值分配到int类型的实体,是啥意思?例如int *a[10];a[0]=j-i;(i、j均为指针)。相关的知识,希望对你有一定的参考价值。

a[0]是指针,而 j-i 是 两个指针相距几个元素,j-i 是整形不是指针,所以不能对a[0]赋值。追问

那么我声明一个数组如:char *p[10];是不是表示10个类型为char的指针,也就是说p[i]是只向char类型的指针,那么我在这里并没有定义指针所指向的char类型的大小,那么这个指针何时是个边界啊?

追答

char *p[10]; //此时p[i]是野指针,它的值是随机的,所以指向的不是合法内存。必须逐个元素赋值才能用。
比如
for (int i = 0; i < 10; ++i)

p[i] = (char * )malloc(10*sizeof(char));

参考技术A 一个是内存地址,一个是地址中存放的值

以上是关于不能将int类型的值分配到int类型的实体,是啥意思?例如int *a[10];a[0]=j-i;(i、j均为指针)。的主要内容,如果未能解决你的问题,请参考以下文章

不能将void*类型的值分配到int类型实体?

IntelliSense: 不能将 "const char *" 类型的值分配到 "char *" 类型的实体

不能下标“[Int]”的值类型

无法将“Int”类型的值分配给“String”类型?在 (cellForRowAt) 中使用 Tableview

对“const int *”类型的非 const 左值引用不能绑定到不相关类型“int *”的值

为什么不能将包含int和long变量的算术表达式的结果分配回int变量?