当我这样做时:
main(){
char* output[255];
output[0] = '\0';
}
我在output[0] = '\0'
处获得了段错误。
我做错了什么?
答案 0 :(得分:6)
问题可能在其他地方,这部分代码不应该是段错误的。也许你试着在某个地方打印出来?
但是我不确定它是否符合您的要求。你声明了char指针数组:
char* output[255];
在那里写char:
output[0] = '\0';
您可能想要声明字符数组:
char output[255];
答案 1 :(得分:2)
您已创建char**
类型,而不是char*
类型。
正确的语法是char output[255];
答案 2 :(得分:1)
更好的方法是:
#include <stdlib.h>
main()
{
char* output = malloc(255); // Allocates the pointer
output[0] = '\0';
}
Sesh的回答是C ++。
答案 3 :(得分:1)
您想声明一个字符数组,而不是字符的POINTER。它应该是:
main(){
char output[255];
output[0] = '\0';
}
答案 4 :(得分:0)
您的变量输出是一个指针数组,而不是一个char数组。删除星号。
答案 5 :(得分:0)
我遵守了你发布的程序,但除了警告我没有得到任何段错误。它的gcc 4.1.2
答案 6 :(得分:-2)
您基本上是在声明一个指针数组(指向char
的指针)。并且'\0'
不是指针的有效值。如果您打算分配256 char
内存,则重写:
char* output = new char[256];