sillion 2020-06-04
C语言中申请字符串内存,并为其赋值后无法使用 free 释放,并出现:Trace/breakpoint trap。
原因:使用等号对申请内存得到的字符串进行赋值,请使用其他的方法,例如:strcpy(st21,str2) 或 puts (str)。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argv, const char* argc[]) { system("chcp 65001"); char* str = NULL; str = (char*)malloc(1000); str = "你好世界";//出错,请使用 strcpy() // strcpy(str, "你好世界"); free(str); str = NULL; getchar(); return 0; }