我目前正試圖將從函數輸入的信息存儲到我的頭文件中聲明的結構中,並在主文件中使用它。我不能使用結構數組,因爲我不允許分配內存。將數據存儲在包含數組的文件中在頭文件中
頭文件
#ifndef HOMEWORK_H_
#define HOMEWORK_H_
typedef struct
{
int CourseID[25];
char CourseName[100][25];
}Course;
void NewCourse(void);
#endif
我的代碼
#include <stdio.h>
#include <stdlib.h>
#include "Homework.h"
void NewCourse()
{
int i;
int CNumber = 0;
Course storeC;
for(i = 0; i < 0; i++)
{
if(storeC.CourseID[i] == 0)
{
if(storeC.CourseName[i] == NULL)
{
int CNumber = i;
break;
}
}
}
printf("%d\n", CNumber);
printf("Please enter the course's ID number: ");
scanf("%d", &storeC.CourseID[CNumber]);
printf("Please enter the course's name: ");
scanf("%s", storeC.CourseName[CNumber]);
}
和我的主並不真正適用,因爲問題的關鍵在於內存儲的數據。
需要注意的一點是我必須爲我的函數使用單獨的文件,並且我必須爲我的結構使用頭文件。
我知道我的for循環來確定數組中哪個地方可能無效,但我現在並不擔心它。
我的問題是如何將數據從這個函數存儲到 頭文件?
更新
我改變了主要功能,以適應一切,我現在結束了這個錯誤。
標號只能是語句的一部分,而聲明並非 聲明
在主要的代碼是:
switch(Option)
{
case 1:
Course c = NewCourse();
printf("%d\n%s\n", c.CourseID[0], c.CourseName[0]); // For testing purposes
break;
是什麼原因造成的錯誤,因爲它說它源於第29行,即Course c = NewCourse();
?
「不允許分配內存」。你意識到堆棧是分配的內存區域,對吧? – CoffeeandCode
我的意思是使用Malloc或Calloc – Arrowkill
然後你的意思是你不允許動態分配任何內存。 – CoffeeandCode