linux 與window下c申請’變長’數組的疑問

在ubuntu下,用C寫下int main(){ int N=10; int a[N]; return 0;}編譯沒問題。但在window下用VS2008測試,出現問題:error C2057: 應輸入常量運算式error C2466: 不能分配常量大小為 0 的數組error C2133: “a”: 未知的大小原因:與作業系統無關,與編譯器相關,在指定使用C99的情況下支援。據說gun gcc 對標準c做了擴充,其中一個擴充就是變長數組。

C++中運算子New的三種使用方式

轉自:http://badboywang.iteye.com/blog/4463501. plain new 普通newvoid*operator new(std::size_t)throw(std::bad_alloc); void operator delete( void *) throw(); 該運算子在分配失敗時將拋出異常,而非返回NULL。使用時要包含 <new>標頭檔。正常使用new,但要配以異常處理。如:char *getMemory(unsigned long

C++中的explicit

C++提供了關鍵字explicit,可以阻止不應該允許的經過轉換建構函式進行的隱式轉換的發生。聲明為explicit的建構函式不能在隱式轉換中使用。  C++中, 一個參數的建構函式(或者除了第一個參數外其餘參數都有預設值的多參建構函式), 承擔了兩個角色。 1 是個構造器 2 是個預設且隱含的類型轉換操作符。  所以, 有時候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰好XXX的類型正好是AAA單參數構造器的參數類型, 這時候編譯器就自動調用這個構造器,

C中全域變數和函式宣告的認識

在C中可以定義全域變數,全域變數是在程式載入初始化時分配空間並進行初始化。在c代碼中定義/聲明全域變數的方式如下1. int n;    定義或者聲明(如果在其他檔案中已定義)全域變數。 2. int n = 10;    定義全域變數並初始化。 3. extern int n;    聲明在外部定義的全域變數。 4. static int n;    定義靜態全域變數 5. static int n = 10;   

C#學習筆記(一) -console.WriteLine ReadLine

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace helloworld{ class Program { static void Main(string[] args) { Console.WriteLine("abc" + 123); //abc123 //

C++編程思想讀書筆記-8常量

1 標頭檔裡的constconst預設為內部串連(internal linkage),僅在本檔案內可見.為了使const能夠被外部檔案所引用,必須明確把它定義成externextern const int x = 1; 這樣是是對常量做定義,而不是聲明.聲明是這樣的 extern const int i; 表示在其它地方有定義一個常量i;2

linux編程學習筆記(十) C語言中的函數隱式聲明

fun.cfloat fun(){return 1.234;}test.c#include <stdio.h>int main(){float a = fun();printf("%f\n",a);}gcc fun.c test.c  zhao@ubuntu:~/unix/4$ ./a.out 1067316160.000000發現得到的結果不僅是個整數 還是個很怪異的數字  並且編譯時間沒有報錯

C++學習筆記(五)– 成員指標

c++不僅支援指標 還添加了新的指標 int A::*p = &A::m; //成員指標用法 A a; a.*p;  A *pa = new A; pa->*p; void (A::*f)() = &A::func; //成員函數指標用法A a; (a.*p)();A *pa; (a->*p)();#include "stdafx.h"#include <iostream>using namespace std;class A{public:A():m(0

C#網頁刷票器(實現代理IP投票)

和@陳宇翔的修行錄忙了一個星期寫了個刷票器來交軟體測試課的作業PPT不是很好傳,放到資源裡面去,PPT地址:源碼地址:http://download.csdn.net/detail/a8887396/5344103投票效果:刷票地址: (有效期間半年)http://mwangbobo.jingdianet.com/Default.aspx主要代碼:using System;using System.Collections.Generic;using

C++編程思想讀書筆記-9 內嵌函式

1 在C語言中使用宏可以提高程式效率,但宏容易出錯在宏定義中,最好給變數打上括弧,否則容易出錯.宏和普通函數是有區別的,普通函數是值傳遞或者地址傳遞,但宏是簡單地拷貝,特別參數是a++這種容易使a++多次執行2 在宏裡,沒法表示類的作用範圍.所以類中不能使用宏.轉而使用內嵌函式在類的聲明中直接寫上函數定義的預設是inline函數內嵌函式和普通函數差不多,會受到編譯器的檢查參數列表和傳回值.

C++編程思想讀書筆記-10 名字控制

1 可見範圍控制串連只針對在串連/裝載期間有地址的成員.全域變數,普通函數預設是外部串連(對其它檔案可見,預設的extern屬性)全域const變數除外,全域const變數預設是內部串連的(static屬性)全域變數是靜態儲存的static對全域變數的作用是改為內部串連(對其它檔案不可見), 對局部變數的作用是改變其儲存類型(由動態儲存裝置改為靜態儲存)2 靜態變數靜態儲存的變數第一次調用時(定義時)必須初始化對於內部類型,預設進行零初始化.

怎樣在C++中建立刪除一個檔案

問題是這樣的:1.設計一個N個使用者的檔案系統,每個使用者最多儲存m個檔案。

Visual C++中為普通程式添加ODBC應用

一、

用visual c++實現遠程線程嵌入技術

  遠程線程技術指的是通過在另一個進程中建立遠程線程的方法進入那個進程的記憶體位址空間。我們知道,在進程中,可以通過createthread函數建立線程,被建立的新線程與主線程(就是進程啟動時被同時自動建立的那個線程)共用地址空間以及其他的資源。

C++實現檔案刪除

我在程式中使用的刪除檔案夾的方法,不知對你有沒有協助     bool   DeleteDirectory(AnsiString   DirName)     {         //該函數刪除一個非空的目錄DirName         SHFILEOPSTRUCT   filestruct;         memset(&filestruct,0,sizeof(filestruct));   //將該結構緩衝區用0填充         filestruct.hwnd=NULL; 

如何用c#解析word(1)–獲得文檔中的style標籤

前幾天 受人指點 隨手寫了這個 代碼:注 在vb中實現此功能很簡單 但是在c#中卻不是太簡單,很多方法用法不同 當時讓我 痛苦了好半天   Word.Document doc=null;   Word.ApplicationClass app=new ApplicationClass();   Word.Style _style;    string _XmlStr="";   object missing=System.Reflection.Missing.Value;   try   {  

Alloctor— C++標準庫函數

  C++標準庫中的Allocator有一個複雜而低層次的介面[注1]。和new與delete不同,它們將記憶體配置與物件建構解耦。和malloc與free不同,它們要求你明確正在分配的記憶體的資料類型和對象數目。   

探索C++詳解extern “C”

#ifdef __cplusplus extern "C" { #endif //一段代碼 #ifdef __cplusplus } #endif   這樣的代碼到底是什麼意思呢?首先,__cplusplus是cpp中的自訂宏,那麼定義了這個宏的話表示這是一段cpp的代碼,也就是說,上面的代碼的含義是:如果這是一段cpp的代碼,那麼加入extern "C"{和}處理其中的代碼。   要明白為何使用extern

[老文章轉載]C#中使用指標

我想許多C程式員不願意學習Java的原因就是Java不支援指標,但是現在類似於Java的C#卻已經支援了指標,你可以使用unsafe關鍵字來告訴編譯器下面的函數或者代碼是不安全的。一旦你使用了unsafe,那麼你就可以在unsafe地區中使用指標。      程式1   using System;   class nish   {   unsafe static void Increment(int* p)   {    //increment the int pointed to by p  

Borland推出新版C++Builder快速應用開發環境

美國Borland軟體公司日前宣布,推出Delphi 2006、C++Builder 2006和C#Builder 2006快速應用開發(RAD)環境的新版本。該公司稱,新版本能為軟體Team Dev減免了重複冗餘的開發工作,使其快速兼別具成本效益地交付企業級Windows應用。 Delphi 2006、C++Builder 2006和C#Builder 2006現已併入Borland Developer

總頁數: 4314 1 .... 1383 1384 1385 1386 1387 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.