c++ 多维数组内存分配问题?指针引用字符串问题字符指针变量的问题

发表时间:2017-12-24 09:36:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《宝鸡哪里有休壁挂炉的?主板UC61VMS-M2(双敏) 为什么样接不上 先科dvr-217ch30》相关知识。本篇中小编将再为您讲解标题c++ 多维数组内存分配问题?指针引用字符串问题字符指针变量的问题。

void array①() {ntint m = ②;ntint n = ②;ntint* a[m];//指针的数组ntfor (int i = ⓪; i m; i++)ntta[i] = new int[n];ntfor (int i = ⓪; i m; i++) {nttfor (int j = ⓪; j n; j++) {ntttcout a[i][j] 't';ntt}nttcout endl;nttcout a[i] endl;nt}ntfor (int i = ⓪; i m; i++)nttdelete[] a[i];n}nvoid array() {ntint ROW = ②;ntint COL = ②;ntint **p = new int* [ROW];nntfor (int i = ⓪; i ROW; i++) {nttp[i] = new int[COL];nttfor (int j = ⓪; j COL; j++) {ntttp[i][j] = (i + ②) * (j + ②);ntt}nt}ntfor (int i = ⓪; i ROW; i++) {nttfor (int j = ⓪; j COL; j++) {ntttcout p[i][j] 't';ntt}nnt}ntfor (int i = ⓪; i ROW; i++) {nttdelete[] p[i];nt}ntdelete [] p;n}

已经尝试过这两种方法 ,但是发现都不是在堆内存中连续存在的,有什么能在堆中连续分配的方法.

怎么还有只想用 C 部分的要求……

(以下名称的扭曲是因为感觉需求很奇怪)

我拿纯 C 写个,兼容 C++ :

#include struct douteki_nijigen_int { int *men_deita; int **men_baikai;};struct douteki_nijigen_int *douteki_nijigen_int_kouchiku(struct douteki_nijigen_int *kore, size_t nagasa, size_t hirosa) { kore->men_deita = (int*) malloc(nagasa * hirosa * sizeof(int)); kore->men_baikai = (int**) malloc(hirosa * sizeof(int*)); for (size_t i = ⓪; i < nagasa; ++i) kore->men_baikai[i] = kore->men_deita + i * hirosa; return kore;}void douteki_nijigen_int_shoukyo(struct douteki_nijigen_int *kore) { free(kore->men_deita); free(kore->men_baikai);}#include int main(void) { struct douteki_nijigen_int waga_hairetsu; douteki_nijigen_int_kouchiku( int **baikai = waga_hairetsu.men_baikai; printf(\"%pn%pn%pn%pn%pn%pn\", (void*) douteki_nijigen_int_shoukyo(}

重载的 operator[] 翻译到 C 就失去意义了,所以只好用上面说过的有 overhead 的写法。

如果你不排斥运算符重载的话我有这个:

#include // Chuui_seyo! Kyoukai_check nashi!template class nijigen_hairetsu {public: nijigen_hairetsu(std::size_t nagasa, std::size_t hirosa) : men_deita (new Kata[nagasa*hirosa]), men_hirosa(hirosa) {} ~nijigen_hairetsu(){ delete [] men_deita; } Kata *operator[](std::size_t indekkusu) { return men_deita+men_hirosa*indekkusu; } const Kata *operator[](std::size_t indekkusu) const { return men_deita+men_hirosa*indekkusu; } private: Kata *men_deita; std::size_t men_hirosa;#if __cplusplus < ②⓪①①⓪③L nijigen_hairetsu(){} nijigen_hairetsu(const nijigen_hairetsu nijigen_hairetsu(const nijigen_hairetsu nijigen_hairetsu #endif};int main(){ nijigen_hairetsu hairetsu(② · ③); std::cout

编后语:关于《c++ 多维数组内存分配问题?指针引用字符串问题字符指针变量的问题》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《变频器调速问题?三星R458更换CPU》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题