![]() |
#2
pangding2012-07-22 18:09
|

#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
char a[] = "abc";
int n = strcmp(a,"abc");
cout<<n<<endl;
strcpy(a,"def");
cout<<a<<endl;
char* b = (char*)malloc(strlen(a)+strlen("abc")+1);
strcpy(b,a);
strcat(b,"abc");
cout<<b<<endl;
return 0;
}
请问为什么将里面的char a[] = "abc"换成char* a = "abc",运行时会发生内存不能为written的错误?
#include <string.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
char a[] = "abc";
int n = strcmp(a,"abc");
cout<<n<<endl;
strcpy(a,"def");
cout<<a<<endl;
char* b = (char*)malloc(strlen(a)+strlen("abc")+1);
strcpy(b,a);
strcat(b,"abc");
cout<<b<<endl;
return 0;
}
请问为什么将里面的char a[] = "abc"换成char* a = "abc",运行时会发生内存不能为written的错误?