1. 程式人生 > >memset函式為二維陣列初始化

memset函式為二維陣列初始化

1
int* a;  
a = new int[10]; 
sizeof(a) 只會返回出來指標的大小,所以我們只能自己計算這個陣列的長度,這裡應當是sizeof(int) * 10, 因為數組裡面有10個int
所以應該,memset(a, 0, sizeof(int)*10);//將a陣列初始化為0


2
int **p;//開一個n*m的陣列p = new int*[n];for (int i = 0; i < n; i++){p[i] = new int[m + 1];memset(p[i], 0, sizeof(int)*m);//p賦初值為0,sizeof一個指標返回的是指標大小,所以還是sizeof(int)}for (int i = 0; i < n; i++)//釋放pdelete[] p[i];

delete[] p;

memset(p, 0, sizeof(int)*m*n);//因為是p相當於一個指向一個一維陣列的指標,首先格式就不對

memset(p, 0, sizeof(p)*m*n);//也不對,因為我們要的是真正儲存資料的空間,而不是指標

相關推薦

memset函式陣列初始

1int* a;  a = new int[10]; sizeof(a) 只會返回出來指標的大小,所以我們只能自己計算這個陣列的長度,這裡應當是sizeof(int) * 10, 因為數組裡面有10個int所以應該,memset(a, 0, sizeof(int)*10);/

Typescript | 關於陣列初始的誤區

假如要初始化一個4x4的二維陣列,裡面16個元素都為0 錯誤示範: let arr = new Array<Array<any>>() let cols = [0, 0, 0, 0] for (let raw = 0; raw < 4; raw++){ ar

vector陣列初始

int main() { vector<vector<int> >num = { {1,1,1,0,1,1},{1,0,1,1,1,1},{1,1,1,0,0,1},{1,0,1,0,0,1},{1,1,1,1,1,1} }; //二維陣列

Java中一陣列陣列初始

陣列屬於引用資料型別,在使用前必須初始化,否則會報NullPointerException(空指標異常:執行時異常) 一維陣列初始化: 動態初始化:(宣告並開闢陣列) 資料型別[ ] 陣列名稱=new 資料型別[長度] int[ ] data=new

陣列初始及首地址

#include<stdio.h> #include<stdlib.h> void main4() { int num[3][4]; //二維陣列相當於 元素為一維陣列的一維陣列 int number = 1; for (int i = 0

C++:陣列初始

二維陣列初始化分為多種形式。注意,當只對部分元素賦初值時,對於int型陣列,未賦初值的元素自動取0值。 1)按行賦值 int a[ ][3]={{1,2,3},{4,5,6}}; ——相當於{{1,2,3},{4,5,6}} int a[ ][3]={{1,2},{0

java陣列初始

初始化方法: 1、使用大括號直接賦值,適合已經確定知道陣列元素的情況 2、給定二維陣列的大小 程式碼舉例如下: public class ArrCreat { public static

C++-vector初始大小方法-備忘

resize https 初始 http 初始化 href dash lan style 來源: C++——二維vector初始化大小方法 1.直接用初始化方法 名字為vec,大小為n*m,初始值為0的二維vector。 ve

Pandas Dataframe資料轉換陣列array

一個Dataframe如下: age astigmatic lenses_target prescript tearRate 0 2 0 1 1 1 1 2

7.4 函式陣列

7.5 函式和c-風格字串 C-風格字串由一系列字元組成,以空值字元結尾。 將字串作為引數時意味著傳遞的是地址,但可以使用const來禁止對字串引數進行修改。 7.5.1 將C-風格字串作為引數的函式 假設要將字串作為引數傳遞給函式,則表示字串的方式有三種: char

ArrayList陣列轉換陣列

因為專案需求,需要將一個List<T>泛型物件轉換成二維陣列,如,一個將一個List<Medicine>轉換為一個二維陣列。 1.首先看測試類吧: package com.bzjm.test; import java.util.ArrayList

C++——vector初始大小方法

初始化二維vector,為r*c的vector,所有值為0. 1.直接用初始化方法(剛開始沒想到) vector<vector<int> > newOne(r, vecto

C語言陣列動態分配記憶體的問題

C語言中動態分配一位陣列是很簡單的,但是沒有可以直接對二維陣列進行動態分配的函式,因此,要相對二維陣列動態分配記憶體,便要藉助於一位陣列來實現,具體如下: 假設要為一個n*m的二維陣列分配動態

java把Map轉換陣列

場景:     java把Map轉換為二維陣列 1.把Map轉換為二維陣列 public static Object[][] getMapKeyValue(Map map) { Object[][] object = null; if ((ma

程式設計基礎-------C語言函式返回陣列的做法

在C語言中,有時我們需要函式的返回值為一個二維陣列。這樣外部函式接收到這個返回值之後,可以把接收到的二維陣列當成矩陣操作(外部函式不可用普通的一級指標接收返回值,這樣的話,外部函式將不知道它具有二維性)。方法如下: 法1.沒有使用typedef型別定義 #inc

將pandas中Dataframe資料轉換陣列array

在實際的資料處理中,遇到將pandas中Dataframe的資料怎樣去掉行列標籤的問題,最後想到可以轉化為二維陣列來解決。思路如下: 一個Dataframe如下: pd: age a

c陣列初始化為0的2種實現方式

 1 #include <stdio.h>   2 #include <stdlib.h>   3 #include <string.h>   4 int main()   5 {   6     //char a[2][4] ;   7

php判斷陣列是否陣列

假定我們想要知道$arr是否是二維陣列,那麼判斷方法如下:  foreach($arr as $value){                       if(is_array($value))                             echo "是二

C/C++函式返回陣列指標問題

方法1:需要對指標有較好的理解int(*f())[2]{int (*m)[2]=new int[2][2];m[0][0]=1;m[0][1]=0;m[1][0]=2;m[1][1]=0;return m;}//總感覺這種函式定義很怪,可以使用typedef重定義下型別,如

指標初始

這兩天在解析svmlib中遇到這行程式碼 prob.x = new svm_node * [prob.l]; 乍一看不知道什麼意思,後來通過看到一篇博文: http://blog.sina.com.cn/s/blog_4e1fbf0d0100ic43.