二级指针怎么free,怎么一到free那句就出错
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
struct path{
int path_load[100];
int top;
};
int main()
{
int dian,line,chang;
int start,end;
while(scanf("%d%d",&dian,&line))
{
int **juzhen=(int**)malloc(dian*sizeof(int *));
for(int i=0;i<dian;i++)
juzhen[i]=(int *)malloc(sizeof(dian*sizeof(int)));
/*while(line--)
{
cin>>start>>end>>chang;
juzhen[start-1][end-1]=juzhen[end-1][start-1]=chang;
}
*/
juzhen[0][0]=1;
juzhen[0][1]=1;
juzhen[1][0]=1;
for(int i=dian-1;i>=0;i--)
free(juzhen[i]);
}
}
[解决办法]
sizeof(dian*sizeof(int))
你这个写法
意思是
sizeof 一个无符号整数
结果其实就是
sizeof(int)
你的juzhen[0][1]=1;
越界了
[解决办法]
+1