g ++编译器说:
分段错误(核心转储)
此代码运行时:
#include <iostream>
using namespace std;
int main(){
const char *constantChars[3], *variableChars[3];
long int numbers[3];
for(int i=0; i<4; i++){
constantChars[i] = "hello number: ";
numbers[i] = i;
variableChars[i] = (const char *) numbers[i];
cout<<constantChars[i]<<variableChars[i]<<endl;
}
return 0;}
在我的for循环中cout<<variableChars[i]<<endl
时崩溃。
答案 0 :(得分:0)
变化:
variableChars[i] = (const char *) numbers[i];
为:
variableChars[i] = (const char *)(&numbers[i]);
答案 1 :(得分:0)
问题在于您声明的数组的长度。您已将长度设置为3,因此它应该用于从0到2的索引,而在程序中,您使用的索引从0到3。
只需将所有数组的长度增加到4,它就可以解决您的问题。
变化:
const char *constantChars[3], *variableChars[3];
long int numbers[3];
为:
const char *constantChars[4], *variableChars[4];
long int numbers[4];