sizeof(url);在这里面的结果永远是4,为指针所占字节个数。
strlen(url)结果数位有效字符数, \0不算在内
char* temp1 = (char *)malloc((strlen(url))/4);
除 /4 什么意思 获取空间大小不用吧!
而且要用 char* temp1 = (char *)malloc((strlen(url)) +1 );
+1为存最后的\0;
malloc 出来的空间在堆上,是要程序员自己释放的 即free掉的。
做好了空间的申请,复制应该没问题。
祝你好运!
strlen通过\0判断字符串结束,malloc出来的内存sizeof倒是没试过
temp1指向的内存要free,temp1本身会在函数结束之后回收,把内存地址传出来free掉就好了
多线程程序的共享数据必须进行并发保护,也就是必须用锁