在上一篇文章中,小编为您详细介绍了关于《宝鸡哪里有休壁挂炉的?主板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》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器