+ -
当前位置:首页 → 问答吧 → 求strcpy的拷贝问题,实在搞不定,求教!

求strcpy的拷贝问题,实在搞不定,求教!

时间:2011-11-27

来源:互联网

在头文件spi.h中定义一个字符数组如下:
  char* pp[20];
实现过程中,我的初始化如下:
for(int i=0;i<20;i++) //中间的表达式我本来用sizeof(pp),但运行时内存不足
  pp[i]="";
接着,实现过程中,有一个CString对象str,有值,我在调试的时候也看得到。
strcpy(pp[0],str);//调试到这里,看到pp[0]的值是"",str也有值
编绎没有问题,运行这里后,接着一句句执行,接着到strcat.asm中,
main_loop: ; edx contains first dword of sorc string
  mov [edi],edx ; store one more dword
  add edi,4 ; kick dest pointer
其中,mov那句就中断了,过不去,不知道要怎样才行

作者: lrypower   发布时间: 2011-11-27

char* pp[20];
这里你要为每个指针分配内存

然后才能strcpy(pp[i], str);

作者: xiaoc1026   发布时间: 2011-11-27

strcpy(pp[0],str);//调试到这里,看到pp[0]的值是"",str也有值
===========
pp[0]没有分配空间啊!你可以在这之前用new给它分配一个空间。

作者: wltg2001   发布时间: 2011-11-27

问题是
for(int i=0;i<20;i++) //中间的表达式我本来用sizeof(pp),但运行时内存不足
  pp[i]="";

pp[i]初始化的内存太少一个字节,并且是静态常量缓冲区,不能进行
修改修改如下
for(int i=0;i<20;i++) 
pp[i]= new char(128];


使用完后
for(int i=0;i<20;i++) 
  delete [] pp[i]

作者: gameslq   发布时间: 2011-11-27