奇怪今天写了一个函数里面有指针的指针,修改了一下竟然报错
函数:
int str(char *s,char *n,char *p)
{
char **ptr = NULL;
ptr = (char**)malloc(sizeof(char **) * strlen(s) * strlen(n),strlen(p));
//就是这样分配内存下面的指针付值就产生溢出,很奇怪!
ptr[0] = s;//溢出
ptr[1]=n;//溢出
ptr[2] =p; //溢出
}
只要把ptr = (char**)malloc(sizeof(char **) * strlen(s) * strlen(n),strlen(p));这句改过来就不会有问题了!
搞不懂,这样分配内存空间有什么问题!!