我试图将fileOrDir的值赋给copyFileOrDir的值.我希望copyFileOrDir等于fileOrDir的值,而不是指向同一个地址.我以为它会是copyFileOrDir =*filrOrDir但我得到错误.下面是我的代码:(fileOrDir从命令行参数获取其值)
char *fileOrDir = (char *)malloc(25*sizeof(char));
char *copyFileOrDir = (char *)malloc(25*sizeof(char));
copyFileOrDir = *fileOrDir;
Run Code Online (Sandbox Code Playgroud)
指针指向一块内存.如果将一个指针设置为等于另一个指针,则最终指向同一块内存.如果您实际分配了两个不同的块,则永远不应该将一个指针设置为另一个 - 您将无法释放内存.
很可能你打算做一个memcpy允许你将一个内存块的内容复制到另一个内存块的内容:
memcpy(void* destination, const void* source, size_t numberofbytes);
Run Code Online (Sandbox Code Playgroud)