Я работаю над проектом, который имеет дело со структурой и имеет различные функции, которые управляют данной структурой.
Я начал с моей начальной функции, которая просто выделяет память для структуры, инициализирует каждый элемент в структуре и затем возвращает указатель на структуру. Я уже определил структуру в моем заголовочном файле. Затем у меня есть основной файл, который я в конечном итоге буду использовать для запуска всех своих функций, однако у меня возникают проблемы с запуском первого, он вызывает ошибки каждый раз, когда я его запускаю.
header:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <limits.h>
struct Double_Array{
double** array;
int rowsize;
int colsize;
};
struct Double_Array* double_array(int,int);
function:
#include "header.h"
struct Double_Array* double_array( int row, int col){
int i;
struct Double_Array* ptrDouble_Array;
ptrDouble_Array = (struct Double_Array*) malloc(sizeof(struct Double_Array));
ptrDouble_Array -> rowsize = row;
ptrDouble_Array -> colsize = col;
for(i=0;i< ptrDouble_Array -> colsize ; i++){
ptrDouble_Array -> array[i] = malloc((sizeof(double))*(row));
}
return(ptrDouble_Array);
}
mainline:
#include "header.h"
int main(){
srand(time(0));
printf("running");
int i;
int j;
struct Double_Array* ptr;
ptr = double_array( 5, 5);
for(i=0;i<5;i++){
free(ptr->array[i]);
}
free(ptr);
return(0);
}
Я потратил некоторое время на поиск возможных проблем, но для меня все выглядит логически правильным.
Что вызывает ошибку сегмента