レポートでパスカルをCになおせと言う問題が出まして
1.リストの先頭へのデータ挿入
proceder inserthead(val :datatype);
var q:list;
begin
new(q);
with q↑ do
begin
element:=val;
next:=listhead;
end;
listhead:=q;
end;
2.リストの先頭からデータの削除
proceder deletehead;
var q:list;
begin
q:=listhead;
listhead:=q↑.next;
dispose(q);
end;
を繋げてCにする問題が出ました
参考書をみてポインタと構造体を使うことは分かったのですがdeletehead と insertheadをCに置き換えるならどうすればいいかわかりません
初めての構造体 のレポートなのでわかり兼ねるところもあり非常に困っています
お願いします助けて下さい
パスカル言語をC言語に
Re:パスカル言語をC言語に
課題は本来自分で考えるのが筋ですが、それを放棄するなら、いっそのこと
http://www.garret.ru/~knizhnik/ptoc/Readme.htm
のようなものを使うのも一つの手です。
http://www.garret.ru/~knizhnik/ptoc/Readme.htm
のようなものを使うのも一つの手です。
Re:パスカル言語をC言語に
/* リストへのデータの挿入をする関数 */
void inserthead()
{
int val;
printf("データを入力してください → ");
scanf("%d",&val);
q=(struct list*)malloc(sizeof(struct list));
if(q==NULL){
fprintf(stderr,"メモリ不足\n");
exit(1); /* プログラムを終了する */
}
q->element=val;
q->next=listhead;
listhead=q;
}
/* リストからのデータの削除をする関数 */
void deletehead(void)
{
q=listhead;
listhead=q->next; /* 先頭のデータを削除する */
free(q);
}
自分的にこのようにできました
皆さんの意見を参考に仕手できました
御迷惑お掛けしました
void inserthead()
{
int val;
printf("データを入力してください → ");
scanf("%d",&val);
q=(struct list*)malloc(sizeof(struct list));
if(q==NULL){
fprintf(stderr,"メモリ不足\n");
exit(1); /* プログラムを終了する */
}
q->element=val;
q->next=listhead;
listhead=q;
}
/* リストからのデータの削除をする関数 */
void deletehead(void)
{
q=listhead;
listhead=q->next; /* 先頭のデータを削除する */
free(q);
}
自分的にこのようにできました
皆さんの意見を参考に仕手できました
御迷惑お掛けしました