即时尝试将常量字符数组复制到内存中的某个位置并指向它。指针,malloc和char中的C
可以说IM定义主PROG根据本VAR:
char *p = NULL;
,并与一个字符串发送到函数:
myFunc(&p, "Hello");
现在我想,在这个函数结束时指针将指向字母H,但如果我放()它,它会打印你好。
这里就是我试图做的:
void myFunc(char** ptr , const char strng[]) {
*ptr=(char *) malloc(sizeof(strng));
char * tmp=*ptr;
int i=0;
while (1) {
*ptr[i]=strng[i];
if (strng[i]=='\0') break;
i++;
}
*ptr=tmp;
}
我现在知道它的垃圾,但我想知道如何做是正确的,我的想法是分配所需的存储,复制一个char并与指针等前进。
另外我试图使参数由参考(如& PTR),但没有成功,由于左值和右值的问题。
唯一可以改变的是函数,我不想使用字符串,但字符,因为这是和运动。
感谢您提前提供任何帮助。
你为什么试图在C++中使用C内存管理? –
多数民众赞成在我想要做到这一点(不使用新的命令),实际上练习是在C,但我只有在我的电脑上的Visual C++。 – user2534078
然后你应该标记你的问题'C',否则你会得到'C++'答案。 – juanchopanza