私はcにこれらのステートメントで4
を印刷する方法Cでのこれらのステートメントによって、ダブルポインターで答え4を得ることはできますか?
int **ptr;
printf("%d\n",**ptr);
あるcに質問を得ましたか。
ここには2つのステートメントがあり、答えは4
である必要があります。
2つのステートメント間にステートメントを追加できますが、新しい変数を宣言することはできません。
malloc
といっしょにたくさん試しましたが、これを解決できませんでした。
私はcにこれらのステートメントで4
を印刷する方法Cでのこれらのステートメントによって、ダブルポインターで答え4を得ることはできますか?
int **ptr;
printf("%d\n",**ptr);
あるcに質問を得ましたか。
ここには2つのステートメントがあり、答えは4
である必要があります。
2つのステートメント間にステートメントを追加できますが、新しい変数を宣言することはできません。
malloc
といっしょにたくさん試しましたが、これを解決できませんでした。
OK、あなた要件ごとに、あなたは
int **ptr;
puts("4");
exit(0);
printf("%d\n",**ptr);
実際答えを書き込むことができます。
いけないだけで要件を適切に理解しなくてもコードを書いてみます。まず、型指定されたコード行を得ることの目的を理解してください。場合は、あなたがポインタへのポインタの使用方法を探している
あなたはなぜ部分を理解していない場合は、」、それを
int **ptr = NULL;
ptr = malloc(sizeof(**ptr)); //allocate memory to ptr first
if (ptr) //malloc is success?
{
*ptr = malloc(sizeof*ptr); //allocate memory to *ptr
}
if (*ptr) **ptr = 4; //finally, put the value in **ptr
printf("%d\n",**ptr); //go ahead, print it
free(*ptr); //don't forget this
free(ptr); //don't forget that, either
ような何かを試すことができますが、 どのように部分を取得するのは難しいでしょう。
P.S-コードには、これを理解し、さらに読むための "ポインタ"を得るためのインラインコメントがあります。
#include <stdio.h>
#include <stdlib.h>
int main() {
int **ptr;
ptr = malloc(sizeof(int *));
*ptr = malloc(sizeof(int));
**ptr = 4;
printf("%d\n", **ptr);
}
あなたは、いくつかのサンプルコードを提供していただけますか? –
先生に依頼して、ポインタへのポインタを説明するように指示します。この割り当てを引き渡す前にポインタを指示する必要があります。 – Lundin
@Lundin OPは書いています:_ 2つのステートメントの間にステートメントを追加できますが、新しい変数を宣言しません。 – LPs