我對C相當陌生,在引用字符串時遇到了數組和指針。我可以要求輸入2個數字(整數),然後返回我想要的數字(第一個數字或第二個數字),沒有任何問題。但是,當我請求名稱並嘗試返回它們時,程序在輸入名字後崩潰,但不知道爲什麼。指針和malloc問題
從理論上講,我希望爲第一個名字保留內存,然後將其擴展爲包含第二個名稱。任何人都可以解釋爲什麼這打破
謝謝!
#include <stdio.h>
#include <stdlib.h>
void main()
{
int NumItems = 0;
NumItems += 1;
char* NameList = malloc(sizeof(char[10])*NumItems);
printf("Please enter name #1: \n");
scanf("%9s", NameList[0]);
fpurge(stdin);
NumItems += 1;
NameList = realloc(NameList,sizeof(char[10])*NumItems);
printf("Please enter name #2: \n");
scanf("%9s", NameList[1]);
fpurge(stdin);
printf("The first name is: %s",NameList[0]);
printf("The second name is: %s",NameList[1]);
return 0;
}
你不能有一個`void`函數返回0;但是`main()`應該總是首先聲明返回`int`。 – 2011-02-12 22:54:15
謝謝喬納森。我做了這個改變。 – Andy 2011-02-12 23:09:56