有没有办法在数组的数组中赋值?
具体来说,我编写了以下代码:
#include <stdio.h>
#include <stdlib.h>
void func(int **A){ //A: address of (address that the pointer stores)
int i;
*A=(int *)malloc(5*sizeof(int)); //*A: address that the pointer stores
for (i=0;i<5;i++){
**A=i; //**A: content
}
}
int main(){
int *k, i;
func(&k);
for (i=0;i<5;i++){
printf("%d ", k[i]);
}
return 0;
}
函数中的语句**A=i
似乎只在数组的第一个位置赋值(每次执行代码时输出都是4 0 0 0 0
)。
我也尝试过使用*A[i]=i
,在这种情况下,编译器终止执行,并显示以下消息:signal: illegal instruction (core dumped)
.
我能做些什么来解决这个问题吗?
2条答案
按热度按时间bxpogfeg1#
有几个等价的构造允许这样做。
给你
或
或
dced5bon2#
数组索引运算符
[]
的优先级高于取消引用运算符*
。你需要用括号做你想做的事。