我的 strcpy 函数有问题。使用C。
这个简单代码(如下)的要点是将字符串从数组复制到指针数组。
char string[20] = "ABCDEFGH\0";
char * array_of_pointers[20];
// now I want to copy string to the first available slot;
strcpy(array_of_pointers[0],string);
然后 strcpy 抛出错误:
Unhandled exception: Access violation writing location 0x00000000.
为什么?我知道这个问题可能很简单,但我真的不知道。
目标缓冲区尚未初始化。array_of_pointers[0]
只是一个指向地址 0 的指针(在本例中基于访问冲突的错误信息)。您需要对其进行初始化。可能:
array_of_pointers[0] = malloc( strlen( string ) + 1 );
array_of_pointers
是一个包含 20 个指针的数组。像这样定义,该数组中的每个条目都必须在使用之前进行初始化。还要记住,如果您确实使用malloc
(或者可能strdup
)分配内存,使用free
来释放内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)