发布网友 发布时间:2023-04-09 16:11
共1个回答
热心网友 时间:2024-11-20 14:50
printf("%s\n",str[i][100]); %s要传输指针(地址),改成printf("%s\n",&str[i][0]);或者printf("%s\n",str[i]);追问这个忘了,改了这个以后,最后一个输出为什么是□追答printf("%s\n",&str[i][100]); &str[i][100]这个地方不正确,应为&str[i][0];因为[100]指向了每个一维数组的末尾加1个地址,由于数组地址空间是连续的,所以相当于指向了下一个数组的首地址,所以输出的相当于下一个数组的内容,所以最后输出的是最后一个数组的末尾地址加1开始的内容,应该是不属于本进程所属的未知区域(可以看一下变量入栈的内容),所以打印的是空或者其它未知内容。