返回信息流☆─────────────────────────────────────☆
okcry () 于 (Mon Sep 17 22:14:54 2007) 提到:
错误情况如图片,源代码见附件,
我在头文件中定义了如下数据结构
typedef struct Chunk
{
char ch[CHUNK_SIZE];
struct Chunk* next;
}Chunk;
typedef struct
{
int curlen;
char state; //state used for checking if there needs to add new node.
Chunk* head;
Chunk* tail;
}SString;
在main函数中执行到如下语句时提示和某段内存发生冲突,
ap_string->tail = p_temp;
实在是不知道为什么?请各位大侠指点,多谢了!
main函数如下
#include "test.h"
int main( int argc, char** argv)
{
SString* ap_string;
Chunk* p_temp = ( Chunk* )malloc( sizeof( Chunk ) );
ap_string->tail = p_temp; //error happens!
if( !ap_string->tail )
{
cout<<"ap_string->tail malloc error"<<endl;
return 0;
}
return 0;
}
☆─────────────────────────────────────☆
okcry () 于 (Mon Sep 17 22:16:24 2007) 提到:
P.S: 我用的编译环境是 2005.net
☆─────────────────────────────────────☆
vivin (阿诺) 于 (Mon Sep 17 22:23:10 2007) 提到:
你怎么也得给SString* ap_string; 实例化一下吧
☆─────────────────────────────────────☆
CNLAS (Ich gewinne bestimmt……) 于 (Mon Sep 17 22:23:31 2007) 提到:
SString* ap_string;
Chunk* p_temp = ( Chunk* )malloc( sizeof( Chunk ) );
既然知道给后一个分配内存那么为啥不给第一个分配?
这样写VC8应该会有warning提示的吧。。。
☆─────────────────────────────────────☆
okcry () 于 (Mon Sep 17 22:29:46 2007) 提到:
【 在 vivin 的大作中提到: 】
: 你怎么也得给SString* ap_string; 实例化一下吧
非常感谢!!
SString a_temp;
SString* ap_string = &a_temp;
Chunk* p_temp = ( Chunk* )malloc( sizeof( Chunk ) );
ap_string->tail = p_temp;
可以了!真是一言惊醒梦中人啊[em24]
多谢[em68]
☆─────────────────────────────────────☆
okcry () 于 (Mon Sep 17 22:35:50 2007) 提到:
【 在 CNLAS 的大作中提到: 】
: SString* ap_string;
: Chunk* p_temp = ( Chunk* )malloc( sizeof( Chunk ) );
: 既然知道给后一个分配内存那么为啥不给第一个分配?
: ...................
确实没有考虑到这个问题,实在是感谢了
[em68]
SString* ap_string = (SString*)malloc(sizeof(SString));
ap_string->tail = ( Chunk* )malloc( sizeof( Chunk ) );
这是一条镜像帖。来源:北邮人论坛 / soft-design / #21201同步于 2007/9/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[合集] 请教一个C++的问题,多谢
CNLAS
2007/9/20镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。