teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/12/27 04:09

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,10 +1,15 @@
1
+ > 何がいけないのでしょうか?
2
+
3
+ 引数の`p`は`char *`型なので、`p`を変更しても呼び出し元へは変更した結果は戻りません。
4
+ 引数`char **p`として呼び出し元では、`A(&p)`としてアドレスを渡してください。
5
+
1
6
  こういう事?
2
7
 
3
8
  ```
4
- void foo(char* str){
9
+ void foo(char* p){
5
- char *p;
10
+ char *mem;
6
- p = (char *)malloc(sizeof(char)*100);
11
+ mem = (char *)malloc(sizeof(char)*100);
7
- str=p;
12
+ p=mem;
8
13
  }
9
14
 
10
15
  void main (void){
@@ -22,10 +27,10 @@
22
27
  こうしないとだめだよ
23
28
 
24
29
  ```
25
- void foo(char** str){
30
+ void foo(char** p){
26
- char *p;
31
+ char *mem;
27
- p = (char *)malloc(sizeof(char)*100);
32
+ mem = (char *)malloc(sizeof(char)*100);
28
- *str=p;
33
+ *p=mem;
29
34
  }
30
35
 
31
36
  void main (void){