二級指標與字串陣列
程式源自《C指標:基本概念核心技術及最佳實踐》第四章的字串陣列一節
#include <stdio.h> #include <string.h> #include <malloc.h> void freestrmemory(char** arr, int length); int main(int argc, char* argv[]) { char** arr = NULL; char tempstring[30]; int i; for(i = 0 ; i< 6; i++) { printf("Insert data\n"); scanf("%s",tempstring); if(arr == NULL) { arr = (char**)malloc(sizeof(char*)); } else { arr = (char**)realloc(arr, sizeof(char*)*(i+1)); } arr[i] = (char*)malloc(sizeof(char)*(strlen(tempstring) + 1)); strcpy(arr[i], tempstring); } for(i = 0; i< 6; i++) { printf(" %d - %s\n", i, arr[i]); } freestrmemory(arr, 5); return 0; } void freestrmemory(char** arr, int length) { int i; for( i = 0; i<=length; i++) { free(arr[i]); } free(arr); }
執行結果如下:
[email protected] # String12.exe Insert data lkf Insert data kjkjk Insert data ddsdds Insert data d Insert data sdsd Insert data dsd 0 - lkf 1 - kjkjk 2 - ddsdds 3 - d 4 - sdsd 5 - dsd
相關推薦
二級指標與字串陣列
程式源自《C指標:基本概念核心技術及最佳實踐》第四章的字串陣列一節 #include <stdio.h> #include <string.h> #include <malloc.h> void freestrmemory(char*
一級指標、二級指標與字串
c語言中沒有字串型別,通過字元陣列來模擬字串,字串以‘\0’結束。 一、一級指標: 字元陣列的定義: 1.指定長度:char buf[100]={‘a’,‘b’}; 或char buf[100]=“ab”; 如果初始化的字元個數大於陣列長度,將會出現編譯錯
《C++語言程式設計基礎》學習之陣列指標與字串
陣列元素在記憶體中順次存放,它們的地址是連續的。元素間實體地址上的相鄰,對應著邏輯次序上的相鄰。 陣列名字是陣列首元素的記憶體地址,陣列名是常量,不能被賦值 陣列名是陣列的指標,指向首個元素的地址,多維陣列的n-1維是指標一維陣列初始化: 在定義陣列時給出陣列元素的初始值:列
char陣列 、char指標與字串常量的比較
陣列不是基本型別,不能直接參與比較,陣列與字串及字元指標與字串比較其實比較的是二者的地址。 例: int isequiv(char *t) { if (t == "char") return 1; else return 0; } int main() { char te
字串指標與字元陣列
#include <stdio.h> int main(void) { char *p = "abcdefg"; //用字元指標時,字串存於常量區 P儲存的是字串的首地址; char a[] = "a
字串指標與字元陣列的區別
陣列和指標都可以在它們的定義中用字串常量進行初始化,儘管看上去一樣,底層的實現機制卻不相同。 定義指標時,編譯器並不為指標所指向的物件分配空間,它只是分配指標本身的空間,除非在定義的同時賦值給指標一個字串常量進行初始化。例如:下面的定義建立了一個字串常量(為其分配了記憶體):
嵌入式C語言--指標與字串
使用指標這一工具來操作字串。 定義字串變數的初始化方法 char *strptr = "liefyuan"; char strarray1[] = "liefyuan"; char strarray2[8] = "liefyuan"; char strarray3[8] = {'
指標9(指標與字串)
例題 應用字元指標,將字串“How are you!”從a陣列複製到b陣列。 #include<stdio.h> int main() {char a[]="How are you!",b[20]; char *s1,*s2; s1=a; s2=b; while(*s
指標與動態陣列初步+動態陣列元素個數確定方法
一、學到指標與動態陣列趕緊記錄一下 用new操作符為陣列分配記憶體尤其有用,因為陣列的元素個數往往是在程式執行時才能計算得出的 ——《資料結構與面向物件程式設計》(C++版)Michael Main等編著 下面是一部分簡單的程式碼 #include<iostrea
字串常量與字串陣列
其實這個問題已經遇到很多次了,每次都百度,當時都明白了,過一會就忘記了 現在暫時記錄整理一下,有時間作總結 首先,C語言沒有字串變數,只有字串常量,所以字串變數的任務就交給字元陣列解決了! 字串常量:"qwer" 嗯,這是一個字串常量,字串常量會在結尾
指標與字串、指標與函式
標題1、 指標與字串的千絲萬縷 由於在C語言中,是通過字元陣列來儲存字串的,因而前面通過指標對一維陣列和二維陣列的操作方法,同樣適用於字串。其實,對字串的操作最好採用字串操作函式。 #include<stdio.h> int main() { char name[12]
指標與動態陣列
C語言中如何實現動態陣列: 使用malloc()庫函式(記憶體分配)來得到一個指向一大塊記憶體的指標; 像引用陣列一樣引用這塊記憶體 如果需要使陣列有動態增長的能力,那就修改記憶體的總容量,直接
指標與字串知識整理 c語言
一、指標1. 輸出地址printf("%p",&i); //地址 printf("%x",&i); //十六進位制整數32bit下兩者相同,但是64bit就不同2. int* p,q; //int *p, int q; 沒有int*這種型別,
C++指標與字串
C語言裡沒有字串資料型別,要想獲得字串的表示形式利用字元陣列 #include<iostream> using namespace std; #include<stdlib.h&g
C++初學初練數學指標與字串之矩陣初練
#include <iostream> #include <string> #include <cmath> using namespace std; class Matrix { public: Matrix(int,int); ~
C++ 字串類,字串變數與字串陣列
但是這種方式存在一些弊端,比如字元陣列的大小是固定的,在進行字元連線或字元複製時,需要計算字串與字元陣列的長度,否則就可能發生一部分字元超出陣列範圍。 為此,C++提供了一種新的資料型別——字串型別(string),實際上在C++的基本資料型別中並不包含s
c: string 字元指標與字元陣列的區分
來看一段簡單的程式碼,以區分字元指標與字元陣列在表達字串時的一些區別。 #include <stdio.h> #include <string.h> int main(int argc, char const *argv[]) {
字元指標與字串
1.字元指標可以指向一個字串。 我們可以用字串常量對字元指標進行初始化。例如,有說明語句: char *str = "This is a string."; 是對字元指標進行初始化。此時,字元指標指向的是一個字串常量的首地址,即指向字串的首地址。 這裡要注意字元指標與字元陣
C/C++ 指標小結——指標與其它資料型別(陣列、字串、函式、結構體)的關係
一、指標與陣列和字串 1、指標與陣列 當宣告數時,編譯器在連續的記憶體空間分配基本地址和足夠的儲存空間,以容納陣列的所有元素。基本地址是陣列第一個元素(索引為0)的儲存位置。編譯器還把陣列名定義為指向第一個元素的常量指標。 元素的地址是通過索引和資料型別的比例因子來計算的;例如: x[3
指標,二級指標,指標陣列與陣列指標 練習day—17
1.指標 1)指標就是個變數,用來存放地址,地址唯一標識一塊記憶體空間; 2)指標的大小是固定的4(8)個位元組(32(64)位平臺); 3)指標是有型別的,指標的型別決定了指標的+/-整數的步長,指標解引用操作時的許可權; int main() { in