首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

弱问一个字符串操作有关问题

2012-02-03 
弱问一个字符串操作问题下面这个代码能编译但运行出错.不知哪里有问题.求高手.#include iostream#includ

弱问一个字符串操作问题
下面这个代码能编译但运行出错.不知哪里有问题.求高手.

#include <iostream>
#include <string.h>

using   namespace   std;

void   main()
{
char   *p;
char   *q;
p   =   "abcd ";

q   =   strcat(p,   "a ");

cout < <q < <endl;

}

[解决办法]
p还没有分配空间。
最好使用数组。

char p[10];
char *q;
strcpy(p, "abcd ");
q = strcat(p, "a ");

也可以直接初始化p:
char p[10] = "abcd ";
[解决办法]
strcat是追加字符或字符串的意思,q中没有初始化,因此运行时候会出错。
[解决办法]
p指向的空间是只读内存空间,不可以改写。


[解决办法]
你没有给数据分配空间啊!如果你这样char* p定义数组的话要直接初始化的.像这样char* p = "hello world! ";但如果你要用它来指向某一个数组你可以这样char buf[]= "hello world ";p = buf; 再如char* p = new char(...); 但像你那样是不行的!
[解决办法]
楼主的行为是在向一个常量字符串末尾追加一个‘a '。显然这是非法的!
如果要做追加的操作,一定要分配出空间,再让p指向它。

热点排行