【发布时间】:2013-09-17 06:50:42
【问题描述】:
我在使用双指针时遇到问题。我想将字符串分配给 Dinfo.phrase。代码运行良好,直到语句 delete[] newp。执行此语句时,会出现以下错误。
Windows 在 ...exe 中触发了断点 这可能是由于堆损坏,这表明 teststring.exe 或其已加载的任何 DLL 中存在错误。
这里是代码
struct dlgbox {
char *temp; };
void test(char **newp){
dlgbox Dinfo;
char *test="test";
Dinfo.temp= NULL;
Dinfo.temp=test;
*newp = Dinfo.temp;
printf("%s \n",*newp);}
int main(){
char *newp=NULL;
test(&newp);
printf("main se ==%s ",newp);
printf("\nstrlen %d ",strlen(newp));
delete[] newp;
_getch();
return 0;}
请帮帮我!!这是由于指针删除造成的问题吗?在我的特殊情况下如何删除指针??
【问题讨论】:
-
我想将字符串分配给 Dinfo.temp,最后分配给 newp*
-
您永远不需要在(直接)回复您自己的问题或答案时添加评论。如果您有更多信息要提供,请使用编辑链接(在您的问题底部)将其添加到您的问题中。另外,请同时添加一个语言标签(我几乎可以肯定它是 C++,但这个网站适用于各种语言的程序员,所以标签有助于确保您的问题对合适的人可见)
标签: pointers