【发布时间】:2017-11-23 21:14:24
【问题描述】:
首先,我查看了有关分段 faut 11 错误的其他标题。
这个离我很近。但不能解决我的问题。 How to fix segmentation fault 11 error
这段代码使用readArray函数从用户那里获取2个数组
这是代码
int *readArray(int p[]) {
int i = 0;
printf("Enter the array :\n");
for (i = 0; i <= 10; i++) {
printf("a%d : ", i);
scanf("%d", &p[i]);
}
return p;
}
int main() {
int *firstArray;
int *secondArray;
int *resultArray;
firstArray = readArray(firstArray);
// printArray(firstArray);
secondArray = readArray(secondArray);
// printArray(secondArray);
// addArray(firstArray,secondArray,resultArray);
// printArray(resultArray);
printf("\n");
return 0;
}
我可以从用户那里获得第一个,但不能获得第二个。它得到错误分段错误 11。
我该如何解决?
谢谢大家! 固定代码
void readArray(int p[]) {
int i = 0;
printf("Enter the array :\n");
for (i = 0; i < 11; i++) {
printf("a%d : ", i);
scanf("%d", &p[i]);
}
}
int main() {
int firstArray[11];
int secondArray[11];
int resultArray[11];
readArray(firstArray);
// printArray(firstArray);
readArray(secondArray);
// printArray(secondArray);
// addArray(firstArray,secondArray,resultArray);
// printArray(resultArray);
printf("\n");
return 0;
}
【问题讨论】:
-
为数组分配一些内存怎么样?
-
其实 11 元素对我来说还可以。但我不能将它作为数组发送给函数,所以我使用指针。
-
目前是 0 元素。
-
尾巴试图摇狗。
readArray返回它传递的同一个指针,将它分配给传递的指针是没有用的。 -
亲爱的@EugeneSh。你是说,我必须
myArray = (int *) malloc(11);11 个整数?
标签: c segmentation-fault