C/C++

vectorで遭遇したSegmentation faultのエラー

原因調査中 #include <iostream> #include <string> #include <vector> using namespace std; int main(){ vector<int*> ard_val; int *current = new int[3]; current[0] = 1; current[1] = 2; current[2] = 3; cout << current[0] << "\n"; cout << current[1] << "\n"; cout << current[2] </int*></vector></string></iostream>…

無名共用体を使う

久しぶりに意味が分からないものに出会った。 //無名共用体を試す #include <iostream> using namespace std; int main() { union { unsigned char bytes[8]; double value; }; int i; value = 859345.324; //cout << &bytes << "\n"; //デバッグ用。意味はない。 //co</iostream>…

C言語とC++の構造体の違い

C++での構造体は構文上も機能的にもクラスによく似ている。 実際のC++での構造体とクラスの違いは、メンバがデフォルトで非公開か公開かという違いしかない。 クラスの宣言形式 class type-name { //非公開関数とデータメンバ public: //公開関数とデータメ…

オブジェクトポインタ(C++)

C++っぽい? #include <iostream> using namespace std; class myclass{ int a; public: myclass(int x); int get(); }; myclass::myclass(int x) { a = x; } int myclass::get() { return a; } int main() { myclass ob(20); myclass *p; p = &ob; cout << "オブジェ</iostream>…

アロー演算子の使い方で思ったこと(C言語)

構造体へのポインタを引数に使う場合を考える。 ポイントは、 struct Car car1; //構造体の宣言 void show(Car *pC) //構造体へのポインタを引数に持つ関数 { car1->num; //アロー演算子で構造体へのポインタから構造体のメンバ変数にアクセス car2->gas; } …

独習C++

C++について学んだこと。(クラスの定義) class myclass{ //非公開関数と変数 int a; public: //公開関数と変数 void set_a(int num); int get_a(); } object-list; void myclass::set_a(int num){ a = num; } void myclass::get_a(){ return a; } をスコー…

列挙型enum

typedef enum Week{SUN,MON,TUE,WED,THU,FRI,SAT} Week; int main(void){ Week w; w = SUN; switch (w){ case 0: printf("日曜です。\n"); break; case 1: printf("月曜です。\n"); break; case 2: printf("火曜です。\n"); break; case 3: printf("水曜です…

構造体でリストを作る

typedef struct Car{ int num; double gas; struct Car *next; }Car; int main(void) { Car car0; Car car1; Car car2; Car car3; Car *pcar; car0.num = 1234; car0.gas = 25.5; car1.num = 4567; car1.gas = 52.2; car2.num = 7890; car2.gas = 20.5; car0…

関数ポインタを使う

便利だと思います。 int main(void){ void (*pM[3])(void); int num; pM[0] = show0; pM[1] = show1; pM[2] = show2; printf("どののりものを呼び出しますか?(0:車 1:レーシングカー 2:飛行機)\n"); scanf("%d",&num); if(0< num && num <= 2){ (*pM[num]…

配列を引数として使う

5人の得点の平均点を出す。 以下、失敗例。 #include <stdio.h> float avg(int t[]); float avg(int t[]){ int sum; for(int i=0;i<5;i++){ sum += t[i]; } return sum/5.0; } int main (void) { printf("5人の点数を入力してください"); int test[5]; for(int i=0;i</stdio.h>…

ポインタについてのまとめ

Cの復習。 #include <stdio.h> void swap(int x,int y); //関数プロトタイプの宣言 void swap(int x,int y) { printf("swap関数内:xは%d,yは%dです。\n",x,y); int tmp; int *pX; //int型のポインタpAを宣言 int *pY; pX = &x; //ポインタpAにxのアドレスを代入 pY =</stdio.h>…