2016-04-12 10 views
1

とは基本的に違っています。このエラーが発生したときに、ユーザー入力を受け取り、リストから削除するために使用しています。このコードは文字通り1時間前に動作していたので、なぜVisual Studioがそれにぴったりしているのか分かりません。char *は間接レベルのchar(*)[100]

char courseName[100]; 
scanf("%s", courseName); 
deletefromlist(&list, &courseName); 

deletefromリスト機能は、引数として(Courselist * self, char * data)取ります。

どうすればこのエラーを修正できますか?乾杯!

+0

[C - 'char \ * \ *'の可能な重複は 'char(\ *)\ [6 \]']からの間接的なレベルで異なります(http://stackoverflow.com/questions/7524070/c- char-different-in-indirection-from-char-6) –

答えて

5

第2引数の関数はchar *を受け入れるので、&courseNameの代わりにcourseNameを渡す必要があります。

また、deletefromlistの性質によっては、引数の種類を変更することができます。

+0

ああ、私はそれを試しました、コードはまだ壊れています。病気は私の削除機能をより多分見るべきである。しかし、なぜchar *はchar(*)と同じではありませんか? theyは両方とも何かを指しているので –

+0

'courseName'を' char'の配列として宣言したので、 'courseName'は' char * 'ポインタのように振る舞います(配列の最初の' char'を指します)。あなたの削除機能では、配列を扱う際にオーバーフローを避けるための正しい保護手段があることを確認してください。 – Quentin

+0

ああ、それはメモリアクセス違反を取得して以来理にかなっています。 cheers mate –

関連する問題