VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 804|回复: 4

[求助] 为什么不指定数组长度(通过初始化个数推断长度)会奔溃?

[复制链接]
14_avatar_middle
在线会员 发表于 2018-1-7 15:49:20 | 显示全部楼层 |阅读模式
3驿站币
// main.cpp

#include "Sort.h"

int main(int argv, char *argc[])
{
        // double *pDouble = new double[]{4.4, 3.5,86.4,34.1,45.9};                // 程序崩溃
        double *pDouble = new double[5]{4.4, 3.5, 86.4, 34.1, 45.9};        // 程序正确
        std::cout << "double type:" << std::endl;
        Print(pDouble, 5);
       
        std::cout << std::endl << "double type sort:" << std::endl;
        Sort(pDouble, 5);
        Print(pDouble, 5);
       
       
       
        delete[] pDouble;
        system("pause");
        return 0;
}


// Sort.h

#ifndef SORT_H
#define SORT_H

#include <iostream>

#define UINT unsigned int

template<typename T>
void Sort(T *pArray, UINT nSize);
template<typename T>
void Print(T *pArray, UINT nSize);

/////////////////////////////////////////////////////////////

template<typename T>
void Sort(T *pArray, UINT nSize)
{
        if(!pArray || nSize < 1)return;
        for(UINT nCount = 1; nCount < nSize; nCount++)
        {
                for(UINT nIndex = 0; nIndex < nSize - nCount; nIndex++)
                {
                        if(*(pArray + nIndex) > *(pArray + nIndex + 1))
                        {
                                T temp = *(pArray + nIndex);
                                *(pArray + nIndex) = *(pArray + nIndex + 1);
                                *(pArray + nIndex + 1) = temp;
                        }
                }
        }
}


template<typename T>
void Print(T *pArray, UINT nSize)
{
        if(!pArray || nSize < 1)return;
        for(UINT nIndex = 0; nIndex < nSize; nIndex++)
                std::cout << pArray[nIndex] << "\t";
}

#endif // SORT_H

最佳答案

查看完整内容

我真是第一次见这种 new 的用法,编译是通过了,不过访问数组中的元素的时候直接崩溃了! 貌似内存模型有问题,最好还是按照标准的做法吧




上一篇:想了解一下,公司里一般用哪个IDE开发C++项目软件?
下一篇:求助程序无法编译到C:\Windows\System32该何解决?
51_avatar_middle
online_admins 发表于 2018-1-7 15:49:21 | 显示全部楼层
我真是第一次见这种 new 的用法,编译是通过了,不过访问数组中的元素的时候直接崩溃了!
貌似内存模型有问题,最好还是按照标准的做法吧
75_avatar_middle
在线会员 发表于 2018-1-7 18:57:52 | 显示全部楼层
并且已经从坛友或者管理的回复中解决了问题
73_avatar_middle
在线会员 发表于 2018-1-11 15:05:34 | 显示全部楼层
没有new实际的内存大小
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-10-15 13:06

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表