小编RaJ*_*RaJ的帖子

C语言中malloc中的指针大小问题

我正在尝试编写一个可以打印指针变量大小的ac程序,该变量指向malloc()分配的内存位置.

我正在使用的C版本是C99.

以下是我的代码:

#include<stdio.h> 

int main() 
{ 
int *temp; 
temp=malloc(sizeof(int)*3); 
printf("%d %d\n",sizeof(int),sizeof(temp)); 
return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

sh-4.2 $ ./f1 4 8

根据代码,printf应该为两个表达式打印相同的值.即12. sizeof(int)= 4.

因为我为temp分配了12个字节的内存,所以sizeof(temp)应该返回12.但是,它返回值8.

我想知道可能是什么原因?如果有人知道,请回答.

c malloc pointers

0
推荐指数
1
解决办法
249
查看次数

编译时创建表附近的SQLiteDatabase语法错误(代码1)

我正在创建一个简单的预算管理应用程序.为了存储预算详细信息,我创建了一个表.这是我的DataBaseHelper类:

package com.example.rajkumar.budget;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;

public class DatabaseHelper extends SQLiteOpenHelper {
   private static final int DATABASE_VERSION=1;
   private static final String DATABASE_NAME="SQLiteDatabase.db",
   TABLE_NAME="MyBudget";
   public static final String COLUMN_FIRST_NAME="NAME", 
   COLUMN_TWO_NAME="BUDGET_NAME",
   COLUMN_THREE_NAME="LIMIT";
   public DataBaseHelper(Context context){
   super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
    public void onCreate(SQLiteDatabase db){
    db.execSQL("CREATE TABLE" + TABLE_NAME + "(" + COLUMN_FIRST_NAME + "VARCHAR," + COLUMN_TWO_NAME
            + "VARCHAR," + COLUMN_THREE_NAME + "DECIMAL);");
}
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
    db.execSQL("DROP TABLE IF EXISTS"+TABLE_NAME);
    onCreate(db);
}
 public boolean addBudget(String …
Run Code Online (Sandbox Code Playgroud)

android sqliteopenhelper android-activity android-sqlite

-3
推荐指数
1
解决办法
1228
查看次数