質問編集履歴

3 freeの仕方

fumi6328

fumi6328 score 15

2019/04/10 22:03  投稿

c言語 動的確保 関数化
### 質問
関数を使って動的確保をしたいのですが、どちらの書き方の方がいいですか?
また文法的に間違っていたら教えてくださいm(__)m
### 該当のソースコード
```C
//include
int *sec1(int n){
   int *p = (int*)malloc(sizeof(int)*n);
   return p;
}
/*void sec2(int n,int *p2){
void sec2(int n,int *p2){
   p2 = (int*)malloc(sizeof(int)*n);
}*/
}
///////////////////(追記)//////////////////////////////////////
void Free1(int **p1){
       free(*p1);
}
void Free2(int *p2){
       free(p2);
}
//////////////////////////////////////////////////////////////
int main()
{
   int n = 1;
   int *p1,*p2;
   p1 = sec1(n);
   sec2(n,p2);
   Free1(&p1);
   Free2(p2);
   return 0;
}
```
  • C

    6224 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

2 freeの仕方

fumi6328

fumi6328 score 15

2019/04/10 22:00  投稿

c言語 動的確保 関数化
### 質問
関数を使って動的確保をしたいのですが、どちらの書き方の方がいいですか?
また文法的に間違っていたら教えてくださいm(__)m
### 該当のソースコード
```C
//include
int *sec1(int n){
   int *p = (int*)malloc(sizeof(int)*n);
   return p;
}
/*void sec2(int n,int *p2){
   p2 = (int*)malloc(sizeof(int)*n);
}*/
///////////////////(追記)//////////////////////////////////////
void Free1(int **p1){
       free(*p1);
}
void Free2(int *p2){
       free(p2);
}
//////////////////////////////////////////////////////////////
int main()
{
   int n = 1;
   int *p1,*p2;
   p1 = sec1(n);
   sec2(n,p2);
   Free(&p1);
   Free(p2);
   Free1(&p1);
   Free2(p2);
   return 0;
}
```
  • C

    6224 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1 freeの仕方

fumi6328

fumi6328 score 15

2019/04/10 22:00  投稿

c言語 動的確保 関数化
### 質問
関数を使って動的確保をしたいのですが、どちらの書き方の方がいいですか?
また文法的に間違っていたら教えてくださいm(__)m
### 該当のソースコード
```C
//include
int *sec1(int n){
   int *p = (int*)malloc(sizeof(int)*n);
   return p;
}
void sec2(int n,int *p2){
/*void sec2(int n,int *p2){
   p2 = (int*)malloc(sizeof(int)*n);
}*/  
 
 
///////////////////(追記)//////////////////////////////////////  
void Free1(int **p1){  
       free(*p1);  
}
 
void Free2(int *p2){  
       free(p2);  
}  
//////////////////////////////////////////////////////////////  
int main()
{
   int n = 1;
   int *p1,*p2;
   //////////////////////////  
   p1 = sec1(n);
   sec2(n,p2);
   /////////////////////////  
   free(p1);
   free(p2);
   Free(&p1);
   Free(p2);
   return 0;
}
```
  • C

    6224 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る